package com.itheima.mystmind.状态修饰符;
/*
final:最终
作用:修饰类,局部变量,成员变量,成员方法
1.修饰类,表示最终类,则该类无法作为其他类的父类被继承,但是可以作为子类继承其他类
2.修饰局部变量:被final修饰的变量若是基本数据类型,则其值一旦被初始化,永远不能改变,成为自定义常量
被final修饰的变量若是引用数据类型,变量一旦初始化,其地址值永不改变,但变量本身属性可以发生变化
3.修饰成员变量
final修饰类的成员变量,若直接赋值,则该类的所有对象的成员变量共用该值,无法改变
final修饰类的成员变量,若不直接赋值,则必须在该类的构造方法执行前对该成员变量进行赋值,即必须在该类的有参无参构造方法中对
final修饰的成员变量进行赋值
 */


import com.itheima.权限修饰符.Fu;

public final class Person {
   final private String sex;
   final private String name = "一条狗的回家之路";
   private int age;

    public Person() {
        sex = "男";
    }

    public Person(String sex, int age) {
        this.sex = sex;
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}


/*
class Student extends  Person{

}*/

class Demo07{
    public static void main(String[] args) {
       final int A = 10;
       //A = 20; 被final修饰的变量若是基本数据类型,则其值一旦被初始化,永远不能改变,成为自定义常量
       final Student STU1 = new Student();

       Student stu2 = new Student();
       //STU1 = stu2;被final修饰的变量若是引用数据类型,变量一旦初始化,其地址值永不改变,但变量本身属性可以发生变化
        STU1.setAge(10);
        System.out.println(STU1.getAge());

    }

}
